var csrftoken = ""; jQuery(document).ready(function () { "use strict"; // Django需要验证csrf信息验证提交人身份,这段代码必须,需要放入公共JS // csrf信息开始 function getCookie(name) { var cookieValue = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } console.log("cookieValue_csrftoken:" + cookieValue); return cookieValue; } function csrfSafeMethod(method) { // these HTTP methods do not require CSRF protection return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); } csrftoken = getCookie('csrftoken'); jQuery.ajaxSetup({ cache: false //关闭AJAX缓存 }); // csrf信息结束 //邮件分享 jQuery(".invite-inquiry-submit").click(function (event) { event.preventDefault(); var url = '/emailshare/share/'; $.ajax({ beforeSend: function (xhr, settings) { console.log("Start to set csrftoken......."); if (!csrfSafeMethod(settings.type) && !this.crossDomain) { console.log("Set the csrf token successful."); xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, cache: false, type: "POST", url: url, data: $("#model_win_shareform").serialize(), async: false, error: function (request) { messageInfo('Sorry.An error occured.Please try again.'); }, success: function (result) { messageInfo(result.message); } }); }); //商品比较车添加 jQuery(".list-compare-add-btn").click(function (event) { //event.preventDefault(); var url = '/compare/add/'; var product_id = $(this).data('product-id'); var postdata = {"product_id": product_id}; //var this_type = $(this).attr('type'); var that = $(this); $.ajax({ beforeSend: function (xhr, settings) { console.log("Start to set csrftoken......."); if (!csrfSafeMethod(settings.type) && !this.crossDomain) { console.log("Set the csrf token successful."); xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, cache: false, type: "POST", url: url, data: postdata, async: false, error: function (request) { messageInfo('Sorry.An error occured.Please try again.'); }, success: function (result) { messageInfo(result.message); setTimeout(function(){ location.reload(); },500) } }); }); //商品比较车删除 jQuery(".list-compare-del-btn").click(function (event) { event.preventDefault(); var url = '/compare/del/'; var product_compare_id = $(this).data('product-compare-id'); if(product_compare_id) { $.ajax({ beforeSend: function (xhr, settings) { console.log("Start to set csrftoken......."); if (!csrfSafeMethod(settings.type) && !this.crossDomain) { console.log("Set the csrf token successful."); xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, cache: false, type: "POST", url: url, data: {"product_compare_id": product_compare_id}, async: false, error: function (request) { messageInfo('Sorry.An error occured.Please try again.'); }, success: function (result) { messageInfo(result.message); if (result.success == true) { setTimeout(function () { location.reload(); }, 500) } } }); }else{ messageInfo("param error"); } }); jQuery(".list-add-btn").click( function () { var productId = $(this).data("product-id"); var has_sku = $(this).data("has-sku"); var product_url = $(this).data("product-url"); if (has_sku.toLowerCase() == 'false') { var url = "/quote/add"; var cart = { product_id:productId, product_attribute_id:null, quantity:1 }; var encodedata = $.toJSON(cart); $.ajax({ beforeSend: function (xhr, settings) { console.log("Start to set csrftoken......."); if (!csrfSafeMethod(settings.type) && !this.crossDomain) { console.log("Set the csrf token successful."); xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, type: 'POST', contentType: 'application/json', dataType: 'json', url: url, data: encodedata, success: function (result) { messageInfo("Operation successful."); setTimeout(function(){ location.reload(); },500) }, error: function (result) { messageInfo('Sorry.An error occured.Please try again.'); } }); } else { messageInfo("This product contains SKU parameter options.Please enter the product detail and sdd to the shopping cart list.\n Product Detail"); } } ); //询盘购物车删除 jQuery(".list-quote-del-btn").click(function (event) { event.preventDefault(); var cart_id = $(this).data("cart-id"); var method = 'del'; var alert = $(this).data("alert"); var tr = $(this).parent().parent(); var cart = new Object(); cart.cart_id = cart_id; cart.method = method; var postdata = $.toJSON(cart); $.ajax({ beforeSend: function (xhr, settings) { console.log("Start to set csrftoken......."); if (!csrfSafeMethod(settings.type) && !this.crossDomain) { console.log("Set the csrf token successful."); xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, cache: false, type: "POST", contentType: 'application/json', dataType: 'json', url: '/cart/modify', data: postdata, async: false, error: function (request) { if(alert=="text"){ $(".warningText").text("Sorry.An error occured.Please try again!"); $(".warmMsg").fadeIn(300); setTimeout(function(){ $(".warmMsg").fadeOut(300); },2000) }else{ messageInfo('Sorry.An error occured.Please try again.'); } }, success: function (result) { if (result.success == true) { if(alert=="text"){ $(".warningText").text("The product was removed from the quote list!"); $(".warmMsg").fadeIn(); tr.remove(); setTimeout(function(){ location.reload(); },2000) }else{ messageInfo("The product was removed from the quote list!"); setTimeout(function(){ location.reload(); },600) } }else{ messageInfo(result.message); } } }); }); //邮件订阅 jQuery("#email-inquiry-submit").click(function (event) { event.preventDefault(); var url = '/inquiry/email-add/'; if(jQuery("#footerEmail").val()) { $.ajax({ beforeSend: function (xhr, settings) { console.log("Start to set csrftoken......."); if (!csrfSafeMethod(settings.type) && !this.crossDomain) { console.log("Set the csrf token successful."); xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, cache: false, type: "POST", url: url, data: $('#email_inquiryForm').serialize(), async: false, error: function (request) { messageInfo('Sorry.An error occured.Please try again.'); }, success: function (result) { messageInfo(result.message); } }); }else{ messageInfo("Please enter email address"); } return false; }); jQuery("#inquiryForm").submit(function (event) { event.preventDefault(); var url = '/inquiry/add/'; var isOK = true; var that = this; /* 一下代码用于进行参照修改icetus.js原来网站存在询盘提交方法,不要需要复制进去 验证必须加的一段内容,if是验证未通过或未验证,else指的是谷歌判断他已经验证通过了 else内代码是原来常见的部分 */ var responseToken = grecaptcha.getResponse(widgetId); if (responseToken.length == 0) { $("#infoMessage").html("Please complete the man-machine verification"); $("#myModal").modal('toggle'); } else { $.ajax({ beforeSend: function (xhr, settings) { console.log("Start to set csrftoken......."); if (!csrfSafeMethod(settings.type) && !this.crossDomain) { console.log("Set the csrf token successful."); xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, cache: false, type: "POST", url: url, data: $('#inquiryForm').serialize(), async: false, error: function (request) { messageInfo('Sorry.An error occured.Please try again.'); }, success: function (result) { if (result.success == true) { setTimeout(function () { window.location.href = "/thanks.html"; }, 300) } else { $("#infoMessage").html("Please complete the man-machine verification"); $("#myModal").modal('toggle'); } } }); } }); jQuery("#inquiryForm2").submit(function (event) { event.preventDefault(); var url = '/inquiry/add/'; console.log('inquiry come in'); var formName = $(this).data("formname"); if (formName == null || formName == undefined) { formName = "inquiryForm2"; } event.preventDefault(); /* 一下代码用于进行参照修改icetus.js原来网站存在询盘提交方法,不要需要复制进去 验证必须加的一段内容,if是验证未通过或未验证,else指的是谷歌判断他已经验证通过了 else内代码是原来常见的部分 */ var responseToken = grecaptcha.getResponse(widgetId); if (responseToken.length == 0) { $("#infoMessage").html("Please complete the man-machine verification"); $("#myModal").modal('toggle'); } else { $.ajax({ beforeSend: function (xhr, settings) { console.log("Start to set csrftoken......."); if (!csrfSafeMethod(settings.type) && !this.crossDomain) { console.log("Set the csrf token successful."); xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, cache: false, type: "POST", url: url, data: $(this).serialize(), async: false, error: function (request) { alert('Sorry.An error occured.Please try again.'); }, success: function (result) { if (result.success == true) { window.location.href = "/thanks.html"; } else { $("#infoMessage").html(result.message); $("#myModal").modal('toggle'); refresh_captcha(); } } }); } }); //联系我们提交询盘问题 jQuery("#inquiryForm-contact").submit(function (event) { event.preventDefault(); var url = '/inquiry/add/'; var isOK = true; var formName = $(this).data("formname"); var that = this; $("#inquiryForm").find(".required").each(function(){ if(!$(this).val()){ $(this).addClass("active"); isOK = false; } }); if(isOK) { if (formName == null || formName == undefined) { formName = "inquiryForm"; } var message = $('#' + formName).find("#message").val(); try { var data = CKEDITOR.instances.message.getData(); $("#message").val(data); } catch (err) { //没有使用CKEDITOR //不处理 } $.ajax({ beforeSend: function (xhr, settings) { console.log("Start to set csrftoken......."); if (!csrfSafeMethod(settings.type) && !this.crossDomain) { console.log("Set the csrf token successful."); xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, cache: false, type: "POST", url: url, data: $('#' + formName).serialize(), async: false, error: function (request) { messageInfo('Sorry.An error occured.Please try again.'); }, success: function (result) { if (result.success == true) { window.location.href = "/thanks.html"; $.cookie("is_inquiry_submitted", true, {expires: 1, path: '/'}); var uri = $("#download_url_hidden_input").val(); console.log("download url:" + uri); $("#download_btn").attr("href", uri); $("#download_btn").removeClass("disabled"); } else { messageInfo(result.message); refresh_captcha(); } } }); }else{ messageInfo("Please complete the form!"); return false; } }); //刷新验证码 jQuery(".next-captcha").click(function (event) { event.preventDefault(); jQuery.getJSON('/refresh-captcha', function (json) { // This should update your captcha image src and captcha hidden input // debugger; var status = json['status']; var new_cptch_key = json['new_cptch_key']; var new_cptch_image = json['new_cptch_image']; var id_captcha_0 = jQuery("#id_reg_captcha_0"); var img = jQuery(".captcha"); id_captcha_0.attr("value", new_cptch_key); img.attr("src", new_cptch_image); }); }); //ajax验证验证码 jQuery('.form-control-captcha').blur(function () { var key_id = jQuery(this).data('captcha-key'); var json_data = { 'response': jQuery(this).val(), // 获取输入框和隐藏字段id_captcha_0的数值 'hashkey': jQuery('#' + key_id).val() }; jQuery.getJSON('/ajax_val_captcha', json_data, function (data) { //ajax发送 jQuery('#captcha_status').remove(); if (data['success'] == true) { //status返回1为验证码正确, status返回0为验证码错误, 在输入框的后面写入提示信息 //messageInfo(data['message']); } else { //messageInfo(data['message']); //jQuery(this).after('*' + data['message'] + '') } }); }); /* * url 目标url * arg 需要替换的参数名称 * arg_val 替换后的参数的值 * return url 参数替换后的url */ String.prototype.endWith = function (s) { if (s == null || s == "" || this.length == 0 || s.length > this.length) { return false; } if (this.substring(this.length - s.length) == s) { return true; } else { return false; } return true; }; String.prototype.startWith = function (s) { if (s == null || s == "" || this.length == 0 || s.length > this.length) { return false; } if (this.substr(0, s.length) == s) { return true; } else { return false; } return true; }; }); function messageInfo(msg){ //消息提示 $("body").append('
' + '
'+msg+'
'); setTimeout(function () { $("body").find(".modalMsg").remove(); }, 2000); } //公共方法 function refresh_captcha() { var url = '/cetus_cap/refresh/'; $.ajax({ beforeSend: function (xhr, settings) { console.log("Start to set csrftoken......."); if (!csrfSafeMethod(settings.type) && !this.crossDomain) { console.log("Set the csrf token successful."); xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, cache: false, type: "POST", url: url, data: null, async: false, error: function (request) { messageInfo('Sorry.An error occured.Please try again.'); }, success: function (result) { if(result.success) { var img_url = result.new_cptch_image; $("#check_code_img").attr('src', img_url); $("#captcha_0").val(result.new_cptch_key).attr("value",result.new_cptch_key); }else{ messageInfo(result.message); } } }); } function csrfSafeMethod(method) { // these HTTP methods do not require CSRF protection return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); }